<template>
  <div class="login">
    <el-form ref="loginForm" :model="loginForm" class="container" :rules="loginRules">
      <el-form-item>
        <div class="avatar">
          <img src="../assets/avatar.jpg" alt="">
        </div>
      </el-form-item>
      <el-form-item prop="userName">
        <el-input v-model="loginForm.userName" placeholder="请输入内容" prefix-icon="myicon myicon-user" ></el-input>
      </el-form-item>
      <el-form-item prop="userPwd">
        <el-input type="password" v-model="loginForm.userPwd" auto-complete="off" placeholder="请输入密码" prefix-icon="myicon myicon-key" @keyup.enter.native="login('loginForm')"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" class="login-btn" @click="login('loginForm')">立即登陆</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>
<script>
  import { checkLogin } from "@/api";
  export default {
    data() {
      return {
        loginForm: {
          userName: "",
          userPwd: ""
        },
        loginRules: {
          userName: [
            { required: true, message: "账号不能为空", trigger: "blur" },
            { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" }
          ],
          userPwd: [{ required: true, message: "密码不能为空", trigger: "blur" }]
        }
      };
    },
    methods: {
      login(loginForm) {
        this.$refs[loginForm].validate(valid => {
          if (valid) {
            // 调用引入的登陆函数
            checkLogin({
              // 注意按照api书写
              username: this.loginForm.userName,
              password: this.loginForm.userPwd
            }).then(res => {
              if (res.meta.status === 200) {
                // 跳转到首页，保存服务器的token
                localStorage.setItem("adminToken",res.data.token)
                this.$router.push({ name: "Home" });

                console.log(this.$store);
                this.$store.commit('setUserName', res.data.username)
              } else {
                this.$message.error(res.meta.msg);
              }
            });
          } else {
            console.log("error submit!!");
            return false;
          }
        });
      }
    }
  };
</script>
<style lang="scss" scoped>
  .login {
    position: fixed;
    width: 100%;
    height: 100%;
    background-color: #2f4050;
  }

  .container {
    position: absolute;
    left: 0;
    right: 0;
    width: 400px;
    padding: 0px 40px 15px 40px;
    margin: 200px auto;
    background: white;
  }

  .avatar {
    position: relative;
    left: 50%;
    width: 120px;
    height: 120px;
    margin-left: -60px;
    margin-top: -60px;
    box-sizing: border-box;
    border-radius: 50%;
    border: 10px solid #fff;
    box-shadow: 0 1px 5px #ccc;
    overflow: hidden;
  }

  .login-btn {
    width: 100%;
  }
</style>
